package com.shine.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shine.entity.Menu;
import com.shine.info.MenuInfo;
import com.shine.info.UserInfo;
import com.shine.request.MenuCreateRequest;
import com.shine.request.MenuPageRequest;
import com.shine.request.MenuUpdateRequest;
import com.shine.request.UserPageRequest;
import com.shine.response.MenuResponse;

import java.util.List;

/**
 * <p>
 * 菜单 服务类
 * </p>
 *
 * @author huihui
 * @since 2024-11-18
 */
public interface MenuService extends IService<Menu> {

    /**
     * 分页查询菜单
     *
     * @param request
     * @return
     */
    List<MenuResponse> listMenu(MenuPageRequest request);

    List<MenuInfo> getPermissionByUserId(Long userId);

    List<MenuResponse> listByUserId(Long userId);

    Boolean deleteById(Long id);

    Boolean updateMenu(MenuUpdateRequest request);

    Boolean saveMenu(MenuCreateRequest request);

}
